<?php

class McCube_Shell_Color{

    protected $_colorsTxt = array(
         'black'        => '0;30'
		,'dark_gray'    => '1;30'
		,'blue'         => '0;34'
		,'light_blue'   => '1;34'
		,'green'        => '0;32'
		,'light_green'  => '1;32'
		,'cyan'         => '0;36'
		,'light_cyan'   => '1;36'
		,'red'          => '0;31'
		,'light_red'    => '1;31'
		,'purple'       => '0;35'
		,'light_purple' => '1;35'
		,'brown'        => '0;33'
		,'yellow'       => '1;33'
		,'light_gray'   => '0;37'
		,'white'        => '1;37'
    );

    protected $_colorsBg = array(
         'black'        => '40'
		,'red'          => '41'
		,'green'        => '42'
		,'yellow'       => '43'
		,'blue'         => '44'
		,'magenta'      => '45'
		,'cyan'         => '46'
		,'light_gray'   => '47'
    );

	public function colorize($string, $colorsTxt = null, $colorsBg = null) {
		$colored_string = "";

		// Check if given foreground color found
		if (isset($this->_colorsTxt[$colorsTxt])) {
			$colored_string .= "\033[" . $this->_colorsTxt[$colorsTxt] . "m";
		}
		// Check if given background color found
		if (isset($this->_colorsBg[$colorsBg])) {
			$colored_string .= "\033[" . $this->_colorsBg[$colorsBg] . "m";
		}

		// Add string and end coloring
		$colored_string .=  $string . "\033[0m";

		return $colored_string;
	}

}